6c658f71dbd06baf7c954b05ef9618f409b633f9,modules/wyil/src/wyil/util/interpreter/Interpreter.java,Interpreter,execute,#Bytecode.Convert#Constant[]#Context#,274

Before Change



	private Object execute(Bytecode.Convert bytecode, Constant[] frame, Context context) {
		try {
			Constant operand = frame[bytecode.operand(0)];
			Type target = expander.getUnderlyingType(bytecode.type());
			frame[bytecode.target(0)] = convert(operand, target, context);
			return context.pc.next();

After Change


		}
	}

	private Status execute(Bytecode.While bytecode, Constant[] frame, Context context) {
		Status r;
		do {
			Constant value = executeSingle(bytecode.operand(0), frame, context);
			Constant.Bool operand = checkType(value,context,Constant.Bool.class);
			if(!operand.value()) { return Status.NEXT; }
			// Keep executing the loop body until we exit it somehow.
			r = executeAllWithin(frame, context.subBlockContext(bytecode.body()));
		} while (r == Status.NEXT || r == Status.CONTINUE);
		// If we get here, then we have exited the loop body without falling
		// through to the next bytecode.